Вернуться к странице отправки кода
Перейти к расширенной форме представления результатов
Результаты анализа
Длительность анализа: 11 seconds and 260 milliseconds
Путь | Код | Дефекты, контексты | ||||
01: #include <stdio.h> | ||||||
02: #include <stdlib.h> | ||||||
03: #include <string.h> | ||||||
04: | ||||||
05: struct el | ||||||
06: { | ||||||
07: double d; | ||||||
08: char c; | ||||||
09: struct el *next; | ||||||
10: }; | ||||||
11: | ||||||
12: int main(void) | ||||||
13: { |
|
|||||
14: struct el *p_start; | ||||||
15: struct el *p_current; | ||||||
16: | ||||||
17: double dbl = 0.0; | ||||||
18: char ch = '\0'; | ||||||
19: int i; | ||||||
20: | ||||||
21: p_start = (struct el *)malloc(sizeof(struct el)); | ||||||
22: if (!p_start) | ||||||
23: exit(-1); | ||||||
24: | ||||||
25: scanf(" %lf %c", &dbl, &ch); | ||||||
26: p_start->d = dbl; | ||||||
27: p_start->c = ch; | ||||||
28: | ||||||
29: p_current = p_start; | ||||||
30: | ||||||
31: for (i = 0; i < 9; i++) | ||||||
32: { | ||||||
33: if (scanf(" %lf %c", &dbl, &ch) != 2) | ||||||
34: continue; | ||||||
35: | ||||||
36: p_current->next = (struct el*)malloc(sizeof(struct el)); | Использование некорректного (INVALID) указателя struct el * * TMP.11#struct el * p_current+integer(12) в выражении *struct el * * TMP.11#struct el * p_current+integer(12) = struct el * D.2568 (INI-03) | |||||
37: if (!p_current->next) | Использование некорректного (INVALID) указателя struct el * * TMP.12#struct el * p_current+integer(12) в выражении struct el * D.2569 = *struct el * * TMP.12#struct el * p_current+integer(12) (INI-03) | |||||
38: exit(-1); | ||||||
39: | ||||||
40: p_current = p_current->next; | Использование некорректного (INVALID) указателя struct el * * TMP.13#struct el * p_current+integer(12) в выражении struct el * p_current = *struct el * * TMP.13#struct el * p_current+integer(12) (INI-03) | |||||
41: | ||||||
42: p_current->d = dbl; | Использование некорректного (NULL) указателя double * TMP.14#struct el * p_current в выражении *double * TMP.14#struct el * p_current = double dbl.14 (INI-03) | |||||
43: p_current->c = ch; | Использование некорректного (INVALID) указателя char * TMP.15#struct el * p_current+integer(8) в выражении *char * TMP.15#struct el * p_current+integer(8) = char ch.15 (INI-03) | |||||
44: p_current->next = NULL; | Использование некорректного (INVALID) указателя struct el * * TMP.16#struct el * p_current+integer(12) в выражении *struct el * * TMP.16#struct el * p_current+integer(12) = integer(0) (INI-03) | |||||
45: } | ||||||
46: | ||||||
47: p_start = NULL; | ||||||
48: | ||||||
49: printf("Struct elements: %lf %c", p_current->d * 2 * 10, p_current->c + 5); | Использование некорректного (INVALID) указателя char * TMP.17#struct el * p_current+integer(8) в выражении char D.2570 = *char * TMP.17#struct el * p_current+integer(8) (INI-03) Использование некорректного (NULL) указателя double * TMP.18#struct el * p_current в выражении double D.2573 = *double * TMP.18#struct el * p_current (INI-03) | |||||
50: | ||||||
51: free(p_current); | ||||||
52: return 0; | ||||||
53: } |
Пояснения
Графы таблицы имеют следующие назначения:
- Путь — последовательность вызовов функций в программе от вызова из тела
main()
и до того места, где обнаружен дефект. Другие названия пути — стек вызова, контекст. Когда просматривается дефект и один из его контекстов, доступна навигация по элементам контекста. Начальная точка стека помечается (1), каждая последующая — (2), (3) и т. д. Последняя точка пути — место, где имеется дефект. - Код — проанализированный исходный код. При просмотре дефекта элементы его стека подсвечиваются розовым. Текущая просматриваемая строка подсвечивается красным. В строке, соответствующей дефекту, подчеркиваются перемеменные, связанные с дефектом.
- Дефекты, контексты — графа для выбора просматриваемого дефекта и одного из его контекстов. Контекстов может быть несколько, если существует более одного пути достижения строки с дефектом. В этом случае в правой части графы доступен выпадающий список, где можно выбрать для просмотра один из контекстов.